/*
 * 文件名：UserDaoImp.java
 * 版权：Copyright by www.wootide.com
 * 描述：
 * 修改人：ozm
 * 修改时间：2013-1-24
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package com.wootide.ets.sys.user.dao.imp;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.wootide.ets.log.syslog.RunLog;
import com.wootide.ets.sys.user.dao.UserInfoDao;
import com.wootide.ets.sys.user.pojo.UserInfo;

public class UserInfoDaoImp extends HibernateDaoSupport implements UserInfoDao
{
    
    /**
     * 日志记录
     */
    private RunLog runLog;
    
    /**
     * 通过用户名获取用户信息
     * Description: <br>
     * Implement: <br>
     * @param userName 指定的用户名
     * @see
     * @return UserInfo 根据用户名查询dao的用户信息
     * @author ozm
     */
    @SuppressWarnings("rawtypes")
    public UserInfo findOneUserByName(String userName)
    {
        runLog.debug("userName=" + userName);
        List list = getHibernateTemplate().findByNamedQuery("findOneUserByName",userName);
        
        return list.isEmpty() ? null : (UserInfo)list.get(0);
    }
    
    @SuppressWarnings("rawtypes")
    public UserInfo findOneUserByNameAndPassword(String userName,
            String password)
    {
        runLog.debug("userName=" + userName +"; password=" + password);
        List list = getHibernateTemplate().findByNamedQuery("findOneUserByNameAndPassword",new Object[]{userName, password});
        
        return list.isEmpty() ? null : (UserInfo)list.get(0);
    }



    /**
     * 
     * Description: 查询指定用户名的用户信息数
     * Implement: <br>
     * @param userName 指定的用户名
     * @see
     * @return int 
     * @author ozm2013-1-29下午4:49:21
     */
    public int findNumByUserName(String userName)
    {
        runLog.debug("userName=" + userName);
        
        return ((Number)getHibernateTemplate().findByNamedQuery("findUserNumByName",
                userName)
                .get(0)).intValue();
    }
    
    /**
     * 
     * Description: 通过用户ID获取用户信息
     * Implement: <br>
     * @param userId 用户ID
     * @see
     * @return UserInfo 要获取的用户信息
     * @author ozm2013-1-30上午10:21:23
     */
    public UserInfo findOneUserByUserId(Integer userId)
    {
        runLog.debug("userId=" + userId);
        return this.getHibernateTemplate().get(UserInfo.class, userId);
    }
    
    public RunLog getRunLog()
    {
        return runLog;
    }
    
    public void setRunLog(RunLog runLog)
    {
        this.runLog = runLog;
    }
}
